In NAND flash storage, the most widely used advanced error control coding techniques are based on low density parity check (LDPC) codes and Bose-Chaudhuri-Hocquenghem (BCH) codes. Although BCH codes have hardware friendly implementation, they can be unattractive due to lack of soft decoding support when several NAND reads are used to generate the soft information. LDPC soft decoder provides significant performance gains. However, the LDPC decoder has a large System on a Chip (SoC) area and consumes relatively more power.
Given the shortcomings of LDPC and BCH codes, a class of codes has been developed, where these codes can support soft decision decoding with a smaller SoC area and smaller power consumption. These codes include product codes. U.S. Pat. No. 9,231,623, entitled “Chase Decoding for Turbo-Product Codes (TPC) Using Error Intersections,” filed Mar. 26, 2014, U.S. patent application Ser. No. 15/158,425, entitled “Generalized Product Codes For NAND Flash Storage,” filed May 18, 2016, and U.S. patent application Ser. No. 15/460,155, filed Mar. 15, 2017, entitled “Soft Decoder for Generalized Product Codes,” all of which are commonly assigned and expressly incorporated by reference herein in their entirety, describe examples of such codes and decoding thereof.
Product codes can provide significant performance gains in hard decision decoding with much lesser SoC area and power compared to LDPC codes. In U.S. patent application Ser. No. 15/460,155, filed Mar. 15, 2017, entitled “Soft Decoder for Generalized Product Codes,” a soft decoder architecture is described. This architecture provides soft decoding performance close to LDPC codes. In addition to SoC area and power benefits, Product codes are competitive in throughput compared to LDPC codes.
However, latency of the soft decoder of generalized product codes (GPC) can be quite high compared to the LDPC soft decoder. In U.S. patent application Ser. No. 15/158,416, entitled “Performance Optimization In Soft Decoding For Turbo Product Codes,” filed May 18, 2016, which is commonly assigned and expressly incorporated by reference herein in its entirety, an early termination algorithm for Chase decoding is described. The early termination algorithm can reduce latency of the soft decoder. Although this latency reduction is significant, the LDPC decoder remains a faster soft decoder.
Many product applications can be latency sensitive with respect to hard and/or soft decision decoding. For example, and in order to make the GPC solution viable for mobile, client and enterprise applications, significant reduction in soft decoder latency is further needed.